Em muốn viết 1 chương trình delay dùm timer ma thời gian delay phu thuộc vào 1 port bất kỳ chẳng hạn là port p0 vidu port p0=255 thì thời gian delay sẽ là 255ms
Thông báo
Collapse
No announcement yet.
Xin giu`p đỡ về timer và ngắt
Collapse
X
-
như vậy là bộ đếm của bạn lớn nhất là 255Nguyên văn bởi sdtuan Xem bài viếtEm muốn viết 1 chương trình delay dùm timer ma thời gian delay phu thuộc vào 1 port bất kỳ chẳng hạn là port p0 vidu port p0=255 thì thời gian delay sẽ là 255ms
bạn có thể nạp vào tl0 như sau
mov th0,#ffh
mov TL0,-p0
-
sory mình nhầm
bạn viết như sau
.............
.................
....................
.................
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
mov r0,p0
setb tr0
here:sjmp here
ngat_t0:
CLR TR0
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
SETB TR0
;*****
DEC r0
CJNE r0,#255,KT
công việc
mov r0,p0
kt:
ret
Comment
-
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
mov r0,p0
setb tr0
here:sjmp here
Đây là phần khởi tạo ngắt. Có nghĩa là cứ sau 1ms thì 1 ngắt timer sẽ dc kich hoạt.
ngat_t0:
CLR TR0
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
SETB TR0
;*****
DEC r0
CJNE r0,#255,KT
;công việc
mov r0,p0
kt:
ret
Đây là chương trình phục vụ ngắt timer0.Sau khi ngắt dc kich hoạt thì chương trình phục vụ ngắt dc thực hiện.Chương trình này sẽ giảm r0 và so sánh với 0(tức là 255) nếu khác thì sẽ nhảy đến kt và trở lại chương trình chính, công việc này tiếp tục đến khi nào r0=0 va như vậy thì sẽ delay =r0*1ms .Khi r0=0 thì nó sẽ cập nhập giá trị của P0.
Comment
-
LJMP MAIN
ORG 000BH
LJMP NGAT_T0
MAIN:
MOV TMOD,#11H
MOV TH0,#HIGH(-1000)
MOV TH0,#LOW(-1000)
MOV R0,P0
SETB EA
SETB ET0
SETB TR0
NGAT_T0:
DEC R0
CJNE R0,#255,KT
MOV R0,P0
****** CONG VIEC*****
MOV R0,P0
RETI
kt:
vây nhãn kt mình có phải làm ji để nó way lại chương trình chính
Comment
-
em chưa hiểu 2 lệnh này lắm:
MOV TH0,#HIGH(-1000)
MOV TH0,#LOW(-1000)
nó dc sử dụng khi nào,max là bao nhiêu?
mà mình cứ phải nạp số âm vào ah? dùng khai báo như thế này trong trường hơp như thế nao?
mạo mụi hỏi mong ai biết trả lơi cho em .vì em chưa dùng cái này bao giờ
Comment
-
nó tương đương với lệnhNguyên văn bởi dung h Xem bài viếtem chưa hiểu 2 lệnh này lắm:
MOV TH0,#HIGH(-1000)
MOV Tl0,#LOW(-1000)
nó dc sử dụng khi nào,max là bao nhiêu?
mà mình cứ phải nạp số âm vào ah? dùng khai báo như thế này trong trường hơp như thế nao?
mạo mụi hỏi mong ai biết trả lơi cho em .vì em chưa dùng cái này bao giờ
MOV TH0,#HIGH(65536-1000)
MOV TL0,#LOW(65536-1000)
tức là nạp vào timer giá trị = 65536 - 1000 (= 1ms)
byte cao đưa vào TH0 byte thấp đưa vào TL0
Comment
-
í, cái này trong giáo trình có giải thích mà.
nói nôm na như vầy nhé, giả sử cài TIMER là 8bit, nó sẽ đếm từ 0->255, vậy bạn muốn delay 10uS thì làm sao, bạn cài cho TIMER giá trị ban đầu là 245, vậy sao 10uS nó sẽ tràn về 0. giá trị 245 ~ (-10) đó (8bit). người ta dùng giá trị âm cho dễ nhớ hơn.
Comment
-
Khi dùng timer ở chế độ 16 bít, bạn phải nạp giá trị đầu cho timer vào 2 thanh ghi là TH và TL. Trong chế độ 16 bít, thì giá trị đếm tối đa có thể lên đến 65536, tức là giá trị 16bit = 2 byte. Đưa byte cao vào TH, byte thấp vào TL.em chưa hiểu 2 lệnh này lắm:
MOV TH0,#HIGH(-1000)
MOV TH0,#LOW(-1000)
nó dc sử dụng khi nào,max là bao nhiêu?
mà mình cứ phải nạp số âm vào ah? dùng khai báo như thế này trong trường hơp như thế nao?
mạo mụi hỏi mong ai biết trả lơi cho em .vì em chưa dùng cái này bao giờFor a better world
Comment
Bài viết mới nhất
Collapse
-
bởi Andrea14Chào mọi người,
Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...-
Channel: Điện tử truyền hình
hôm nay, 12:42 -
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi bqvietBqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
-
Channel: Thiết bị điện tử cá nhân
06-12-2025, 17:17 -
-
Trả lời cho Xin hỏi về mạch thu FM/AM trong catsettebởi nguyendinhvanTheo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
-
Channel: Điện thanh
05-12-2025, 19:59 -
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi afrendlyCó vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
-
Channel: Thiết bị điện tử cá nhân
04-12-2025, 01:27 -

Comment